#ifndef __WIZ_BASE_TYPE_INDEX_HPP__SHANHAOBO_19800429__
#define __WIZ_BASE_TYPE_INDEX_HPP__SHANHAOBO_19800429__

#include "../Core/WizBaseCoreTypeInt.hpp"

namespace Wiz
{
    namespace Index
    {
        WIZ_DECLARE(::Wiz::Int::Type);
        static ::Wiz::Index::TypeConst Invalid      = ::Wiz::Int::Min;
        static ::Wiz::Index::TypeConst Min          = 0;
        static ::Wiz::Index::TypeConst Max          = ::Wiz::Int::Max;
    } /// end of namespace Index
    namespace UIndex
    {
        WIZ_DECLARE(::Wiz::UInt::Type);
        static ::Wiz::UIndex::TypeConst Invalid     = ::Wiz::UInt::Max;
        static ::Wiz::UIndex::TypeConst Min         = 0;
        static ::Wiz::UIndex::TypeConst Max         = ::Wiz::UInt::Max;
    } /// end of namespace UIndex
    //////////////////////////////////////////////////////////////////////////
    namespace Index8
    {
        WIZ_DECLARE(::Wiz::Int8::Type);
        static ::Wiz::Index8::TypeConst Invalid     = ::Wiz::Int8::Min;
        static ::Wiz::Index8::TypeConst Min         = 0;
        static ::Wiz::Index8::TypeConst Max         = ::Wiz::Int8::Max;
    } /// end of namespace Index8
    namespace Index16
    {
        WIZ_DECLARE(::Wiz::Int16::Type);
        static ::Wiz::Index16::TypeConst Invalid    = ::Wiz::Int16::Min;
        static ::Wiz::Index16::TypeConst Min        = 0;
        static ::Wiz::Index16::TypeConst Max        = ::Wiz::Int16::Max;
    } /// end of namespace Index16
    namespace Index32
    {
        WIZ_DECLARE(::Wiz::Int32::Type);
        static ::Wiz::Index32::TypeConst Invalid    = ::Wiz::Int32::Min;
        static ::Wiz::Index32::TypeConst Min        = 0;
        static ::Wiz::Index32::TypeConst Max        = ::Wiz::Int32::Max;
    } /// end of namespace Index32
    namespace Index64
    {
        WIZ_DECLARE(::Wiz::Int64::Type);
        static ::Wiz::Index64::TypeConst Invalid    = ::Wiz::Int64::Min;
        static ::Wiz::Index64::TypeConst Min        = 0;
        static ::Wiz::Index64::TypeConst Max        = ::Wiz::Int64::Max;
    } /// end of namespace Index64
    //////////////////////////////////////////////////////////////////////////
    namespace UIndex8
    {
        WIZ_DECLARE(::Wiz::UInt8::Type);
        static ::Wiz::UIndex8::TypeConst Invalid    = ::Wiz::UInt8::Max;
        static ::Wiz::UIndex8::TypeConst Min        = 0;
        static ::Wiz::UIndex8::TypeConst Max        = ::Wiz::UInt8::Max;
    } /// end of namespace UIndex8
    namespace UIndex16
    {
        WIZ_DECLARE(::Wiz::UInt16::Type);
        static ::Wiz::UIndex16::TypeConst Invalid   = ::Wiz::UInt16::Max;
        static ::Wiz::UIndex16::TypeConst Min       = 0;
        static ::Wiz::UIndex16::TypeConst Max       = ::Wiz::UInt16::Max;
    } /// end of namespace UIndex16
    namespace UIndex32
    {
        WIZ_DECLARE(::Wiz::UInt32::Type);
        static ::Wiz::UIndex32::TypeConst Invalid   = ::Wiz::UInt32::Max;
        static ::Wiz::UIndex32::TypeConst Min       = 0;
        static ::Wiz::UIndex32::TypeConst Max       = ::Wiz::UInt32::Max;
    } /// end of namespace UIndex32
    namespace UIndex64
    {
        WIZ_DECLARE(::Wiz::UInt64::Type);
        static ::Wiz::UIndex64::TypeConst Invalid   = ::Wiz::UInt64::Max;
        static ::Wiz::UIndex64::TypeConst Min       = 0;
        static ::Wiz::UIndex64::TypeConst Max       = ::Wiz::UInt64::Max;
    } /// end of namespace UIndex64
} /// end of namespace Wiz

#endif /*__WIZ_BASE_TYPE_INDEX_HPP__SHANHAOBO_19800429__*/
